/*
 * システム名称：ソフトウェアライブラリ
 *
 * モジュール記号名称：sega_xpt.h
 *
 * モジュール名称：ライブラリ使用共通ヘッダファイル
 *
 * 目的：(1)他マシン移植を簡単にするため
 *       (2)プログラムを解析しやすくするため
 *
 * 適用範囲：プログラミング全般（ライブラリ開発者、ライブラリ使用者の両方が使
 *           用できる）
 *
 * 前提条件：ここで宣言、定義している識別子と同じ意味の宣言、定義を他ファイル
 *           でしてはいけない。
 * 
 * AUTHOR：Ver1.00  N.Tsubouchi 1993/12/22
 *         Ver1.01  N.Tsubouchi 1993/12/27
 *         Ver1.02	N.Tsubouchi 1994/01/06
 *
 * DATE：1994/01/06
 */


#ifndef SEGA_XPT_H
#define SEGA_XPT_H

typedef unsigned	char	Uint8;		/* 符号なし１バイト整数 */
typedef signed		char	Sint8;		/* 符号つき１バイト整数 */
typedef unsigned	short	Uint16;		/* 符号なし２バイト整数 */
typedef signed		short	Sint16;		/* 符号つき２バイト整数 */
typedef unsigned	long	Uint32;		/* 符号なし４バイト整数 */
typedef signed		long	Sint32;		/* 符号つき４バイト整数 */
typedef float				Float32;	/* ４バイト実数 */
typedef double				Float64;	/* ８バイト実数 */

typedef int					Bool;		/* 論理型（論理定数を値にとる） */

#ifndef NULL

#define NULL	((void *)0)				/* NULL */
#endif

enum BooleanLogic {						/* 論理定数１（偽、真） */
	FALSE = 0,
	TRUE  = 1
};

enum BooleanSwitch {					/* 論理定数２（スイッチ） */
	OFF = 0,
	ON  = 1
};

enum Judgement {						/* 結果判定の定数（成功、失敗） */
	OK = 0,								/* 成功 */
	NG = -1								/* 失敗 */
};


#define MAX(x, y)		((x) > (y) ? (x) : (y))	/* 最大値 */
#define MIN(x, y)		((x) < (y) ? (x) : (y))	/* 最小値 */
#define ABS(x)			((x) < 0 ? -(x) : (x))	/* 絶対値 */

#endif
